---
title: Remix
description: Aturan linting khusus Remix untuk Ultracite (juga kompatibel dengan TanStack Router dan React Router).
---

Konfigurasi Remix memiliki konvensi penamaan berkas untuk berkas rute. Konfigurasi ini juga kompatibel dengan TanStack Router, React Router, dan sistem routing berbasis berkas lainnya.

## Instalasi

Tambahkan konfigurasi Remix ke `biome.jsonc` Anda:

```jsonc title="biome.jsonc"
{
  "extends": ["ultracite/core", "ultracite/remix"]
}
```

## Ikhtisar

Konfigurasi ini menyediakan penanganan khusus untuk berkas rute yang menggunakan konvensi routing berbasis sistem berkas:

- **Penamaan Berkas Rute**: Menonaktifkan konvensi penamaan berkas yang ketat untuk berkas rute
- **Pola Fleksibel**: Mendukung pola penamaan rute Remix (titik, dolar, garis bawah)
- **Tidak Tergantung pada Framework**: Bekerja dengan Remix, TanStack Router, React Router, dan sistem serupa

## Penggantian Pola Berkas

Konfigurasi menerapkan override pada berkas rute dengan pola-pola ini:

- `**/routes/**/*.{tsx,ts}` - rute Remix v1
- `**/app/routes/**/*.{tsx,ts}` - rute Remix v2

### Aturan yang Dinonaktifkan untuk Berkas Rute

| Aturan | Pengaturan | Deskripsi |
|--------|-----------|-----------|
| `useFilenamingConvention` | `off` | Menonaktifkan penegakan nama berkas kebab-case untuk berkas rute. Memungkinkan pola penamaan rute khusus. |

## Mengapa Konfigurasi Ini Ada

Sistem routing berbasis berkas menggunakan karakter khusus dalam nama berkas untuk mewakili pola routing:

- `.` (titik) - Mewakili segmen path (misalnya, `posts.new.tsx` → `/posts/new`)
- `$` (dolar) - Mewakili segmen dinamis (misalnya, `posts.$id.tsx` → `/posts/:id`)
- `_` (garis bawah) - Mewakili rute layout atau rute tanpa path

Konvensi penamaan ini bertentangan dengan persyaratan nama berkas kebab-case default Ultracite, sehingga konfigurasi ini menonaktifkan aturan tersebut secara khusus untuk berkas rute.